A communication network is a geographically distributed collection of nodes interconnected by communication links and segments for transporting communications (e.g., data) between communication units (end nodes), such as personal computers, certain telephones, personal digital assistants (PDAs), video units and the like. Many types of communication networks are available, with the types ranging from local area networks (LANs) to wide area networks (WANs). LANs typically connect nodes over dedicated private communications links located in the same general physical location, such as a building or campus. WANs, on the other hand, typically connect large numbers of geographically dispersed nodes over long-distance communications links, such as common carrier telephone lines. The Internet is an example of a WAN that connects networks throughout the world, providing global communication between nodes on various networks. The nodes typically communicate over the network by exchanging discrete frames or packets of data according to predefined protocols, such as the Transmission Control Protocol/Internet Protocol (TCP/IP). In this context, a protocol consists of a set of rules defining how the nodes interact with each other.
Communication units in a communication network typically communicate via one or more intermediate nodes, such as routers, in the network. Routers are often configured to “route” data, such as packets, between various nodes in the network. Routing is typically performed at layer-3 (L3), which is the network layer of the Open Systems Interconnection Reference Model (OSI-RM). Routers often maintain forwarding databases (FDBs), which are typically configured to hold routing information including L3 addresses and interface information that the router uses to determine where data (e.g., data packets) are to be forwarded in order to reach their destination. For example, a router may have a routing database containing one or more entries wherein each entry contains a L3 destination address of a destination node and interface information about an interface on the router through which the destination node may be reached. A data packet containing a destination address that matches a destination address of an entry in the routing table is forwarded by the router to the interface specified by the matching entry for transfer to the destination node.
A router may execute one or more routing protocols that enable the router to route packets and exchange routing information with other routers in the network. The routers often use this information to configure (e.g., compute) their FDBs. The routing protocols may include distance-vector protocols, such as the Routing Information Protocol (RIP), or link-state protocols, such as the Intermediate-System-to-Intermediate-System (IS-IS) protocol and the Open Shortest Path First (OSPF) protocol.
Routing information is typically exchanged between the routers in the form of advertisement messages. For example, nodes executing the IS-IS protocol exchange routing information using an advertisement message called a Link State Packet (LSP). Likewise, nodes executing the OSPF protocol exchange routing information using an advertisement message called a Link State Advertisement (LSA). An intermediate node that acquires an advertisement message may use information contained therein to update its FDB.
Communication networks are increasingly being used to transport many forms of information including, e.g., voice and video information. Information may be carried on a communication network using various technologies, such as Voice over IP (VoIP). VoIP refers to a group of technologies that may be used to transmit e.g., voice information over communication networks from a source (calling party) to a destination (called party). Such networks may include a plurality of agents that convert e.g., voice and/or video information from its traditional form to a form that is suitable for packet transmission. In other words, the agent encodes, compresses and encapsulates the information into a plurality of data packets that are suitable for being carried by the communication network. Examples of agents include IP telephones, VoIP network interfaces, certain private branch exchanges (PBXs), personal computers (PCs) running communication applications, network devices providing voice gateway services and so on.
In some communication networks, such as VoIP networks, a session protocol may be employed to establish a VoIP session (connection) that supports a call between a calling party and a called party. An example of a session protocol that is commonly used is the well-known Session Initiation Protocol (SIP) which is defined in the Internet Engineering Task Force (IETF) Request For Comments (RFC) 3261. SIP operates at the application layer of the OSI-RM and is defined to establish and maintain sessions between endpoints (e.g., SIP-based telephones) in a communication network.
According to SIP, endpoints are referred to as User Agents (UAs). When a UA comes on-line, it typically registers with a registration service, called a policy data point (PDP), using a SIP register command. The PDP maintains information about the UA which may include its location, how to reach it and authentication information associated with the UA that may be used to authenticate the UA. Typically, after a UA is registered, the UA is available to receive as well as initiate calls.
When a call is initiated by a calling party to a called party, a session is typically established between the calling and called parties' UAs to support the call. Establishing a session between the parties typically involves (1) authenticating both parties and (2) successfully exchanging a sequence of messages between the parties in a predetermined manner. Authentication usually involves ensuring the parties have permission to establish a call in the network. The sequence of messages typically include an invite message issued by the calling party, an OK message issued by the called party followed by an acknowledgement (ACK) issued by the calling party. After the session is established, a channel may then be established, e.g., in accordance with the Real-time Transport Protocol (RTP) defined in the IETF RFC 1889, to carry traffic (e.g., voice information) between the parties.
Unlike static data files or records, voice and/or video information tends to be highly sensitive to delayed and lost packets as well as jitter. That is, delays in receiving data packets, the loss of packets and/or inconsistent delivery of packets may seriously degrade the quality of the information as experienced at the called party's agent. Accordingly, packets carrying this information must usually be delivered to the called party with a high probability of success and, in a consistent and timely manner.
Communication networks may incorporate various services and resources to obviate the effects of delayed and lost packets and to ensure consistent, successful and timely delivery of data packets. In particular, an intermediate node (e.g., a router) in the communication network may provide specific resources and/or services that are configured to affect the rate at which traffic moves through the node in an effort to avoid traffic congestion in the network that may lead to lost or delayed traffic. These resources and/or services may include priority queues, filter settings, traffic shapers, queue selection strategies, congestion control algorithms and the like. Depending on the selection or allocation of such resources and services within the network, traffic may be forwarded at different rates and at different priorities in the network in an effort to avoid congestion and, ensure consistent and timely delivery of the traffic.
Some applications may incorporate unidirectional data flows configured to transfer time-sensitive traffic from a source (sender) in a communication network to a destination (receiver) in the network for a particular VoIP session. Here, network resources may be reserved for a unidirectional flow to ensure that a certain “quality of service” (QoS) is maintained for the data flow. QoS relates to the handling of traffic associated with a data flow to ensure that it is consistently and timely delivered. QoS is typically influenced by the amount of resources in a network that are dedicated to providing the delivery of traffic.
The Resource Reservation Protocol (RSVP) is a network-layer protocol that enables applications to reserve resources for data flows in order to obtain a certain QoS for the data flows. RSVP works in conjunction with routing protocols to reserve resources for data flows in a communication network in order to establish a level of QoS required by the data flows. RSVP is described in R. Braden, et al., “Resource ReSerVation Protocol (RSVP),” Request For Comments (RFC) 2205. Pursuant to RSVP, a data flow is a sequence of messages that have the same source address and same destination address (unicast or multicast). Data flows are unidirectional in that data travels on a data flow from a sender to a receiver. An RSVP session is a collection of one or more data flows that have the same unicast or multicast destination address. RSVP sessions typically utilize port and protocol numbers much like data flows. RSVP sessions differ from data flows in that a session may have multiple senders, whereas a data flow only originates from a single sender.
In a protocol such as RSVP, signaling messages are used to reserve resources for data flows. RSVP defines two fundamental types of signaling messages, a RSVP path (Path) message and a RSVP reservation request (Resv) message. Path messages are typically sent by senders to identify them and indicate the resources (e.g., bandwidth) needed to receive their programming or content. These messages proceed hop-by-hop on a path through the communication network to one or more receivers. The Path messages make intermediate nodes on the path aware of the possibility that a reservation of resources may be required. If a receiver is interested in the programming or content offered by a particular sender, it responds with a RSVP Resv message to reserve resources for a data flow between the sender and receiver. The Resv message specifies resources needed to accommodate the data flow. The Resv message travels hop-by-hop on the same path taken by the Path message but in the reverse direction back to the sender. At each hop, the corresponding intermediate node establishes a reservation for the receiver by setting aside (reserving) resources specified in the Resv message for the data flow. These resources are immediately made available to the data flow. If resources are not available, the reservation may be refused explicitly so that the receiver knows it cannot depend on the corresponding resources being devoted to its traffic. By using RSVP, packets carrying, e.g., time-sensitive information can be accorded the resources and services they need to ensure timely delivery.
The RSVP protocol includes error messages that are used to provide information about the status of a reservation. These messages include a path-error message and a reservation-request error message. A path-error message results from a Path message and travels towards the sender that issued the Path message and a reservation-request-error message results from a Resv message and travels towards the receiver that issued the Resv message. The path-error and reservation-request-error messages include information associated with errors due to processing Path and Resv messages, respectively, such as admission failure, bandwidth unavailable, service not supported, bad flow specification, ambiguous path and the like.
Reservation protocols, such as RSVP, often support prioritization and preemption of reservations. Prioritization generally relates to a preference (priority) given to a reservation with respect to allocating resources to the reservation over other reservations. Preemption generally relates to preempting an existing lower priority reservation in order to reallocate its resources to a newer higher-priority reservation.
Typically, a reservation is preempted by: (a) notifying the receiver of the reservation that the reservation is being preempted, (b) tearing down (removing) the reservation and (c) reallocating its resources as necessary to the newer reservation. Any remaining resources from the preempted reservation that were not allocated to the newer reservation are made available for future reservations.
Some prior art systems used to establish calls in a communication network incorporate techniques for performing authorization at the session protocol level to determine if entities participating in a call are authorized to do so. However, these techniques do not necessarily involve performing checks at the reservation protocol level to ensure that an entity requesting to reserve resources is authorized to do so. Thus, it is possible for an unauthorized entity to reserve resources in the network and potentially exclude authorized entities from reserving resources.